cmake_minimum_required(VERSION 3.10)

#手动添加文件，${变量名称} 例如 ${SRC_LIST1}    类似于makefile中的=，就是赋值   关键字可以使用大小写，无影响
SET(SRC_LIST main.cc)

# MESSAGE -类似于echo
MESSAGE(STATUS "PROJECT_SOURCE_DIR" ${PROJECT_SOURCE_DIR})
MESSAGE(STATUS "PROJECT_BINARY_DIR" ${PROJECT_BINARY_DIR})


#生产执行文件,即将SRC_LIST1\这个文件编译为可执行文件test1
add_executable(output ${SRC_LIST})

# 添加子目录dir1
add_subdirectory(dir1)
# 添加子目录dir2
add_subdirectory(dir2)

# 添加头文件目录dir1 dir2
# include_directories("${CMAKE_CURRENT_SOURCE_DIR}/dir1")   两种写法是一样的，只是路径的选择不同
# include_directories(dir1)

# 新风格cmake，更完善?
target_include_directories(output PRIVATE 
    ${CMAKE_CURRENT_SOURCE_DIR}/dir1
    ${CMAKE_CURRENT_SOURCE_DIR}/dir2
)

# 更好的做法是：在库文件中使用public，这样就能保证谁使用这个库文件，就能自动获取路径

#链接可执行文件和两个库文件
target_link_libraries(output dir1_library dir2_library)


#将可执行文件安装到bin目录
install(TARGETS output RUNTIME DESTINATION ${CMAKE_BINARY_DIR}/bin)


